package com.ssy.lingxi.order.model.vo.platform.response;

import com.ssy.lingxi.order.model.vo.basic.response.*;
import com.ssy.lingxi.order.model.vo.vendor.response.VendorOrderPaymentDetailVO;

import java.io.Serializable;
import java.util.List;

/**
 * 平台后台 - 订单详情
 * @author 万宁
 * @version 2.0.0
 * @date 2021-07-19
 */
public class PlatformOrderDetailVO implements Serializable {
    private static final long serialVersionUID = -4045230632819545194L;

    /**
     * 外部流转步骤
     */
    private List<WorkFlowStepVO> outerSteps;

    /**
     * 当前的外部流转步骤
     */
    private Integer currentOuterStep;

    /**
     * 订单Id
     */
    private Long orderId;

    /**
     * 供应会员Id
     */
    private Long vendorMemberId;

    /**
     * 供应会员角色Id
     */
    private Long vendorRoleId;

    /**
     * 供应会员名称
     */
    private String vendorMemberName;

    /**
     * 采购会员Id
     */
    private Long buyerMemberId;

    /**
     * 采购会员角色Id
     */
    private Long buyerRoleId;

    /**
     * 采购会员名称
     */
    private String buyerMemberName;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 订单类型： 1-询价采购，2-需求采购，3-现货采购，4-集采，5-渠道直采，6-渠道现货，7-积分兑换，8-渠道积分兑换，9-采购询价合同，10-采购竞价合同，11-采购招标合同，12-请购单采购，13-跨境电商进口
     */
    private Integer orderType;

    /**
     * 下单模式：1-进货单下单，2-手工下单，3-询价报价下单，4-需求报价下单，5-合并订单下单，6-渠道直采进货单下单，7-渠道直采手工下单，8-渠道现货进货单下单，9-渠道现货手工下单，10-积分下单，11-渠道积分下单，12-采购询价，13-采购招标，14-采购竞价
     */
    private Integer orderMode;

    /**
     * 下单模式名称
     */
    private String orderModeName;

    /**
     * 订单种类，1-采购订单，2-SRM订单，3-B2B订单
     */
    private Integer orderKind;

    /**
     * 订单来源商城
     */
    private String shopName;

    /**
     * 报价单Id（如没有报价单则为0）
     */
    private Long quoteId;

    /**
     * 报价单号
     */
    private String quoteNo;

    /**
     * 订单摘要
     */
    private String digest;

    /**
     * 订单类型名称
     */
    private String orderTypeName;

    /**
     * 下单时间，格式为yyyy-MM-dd HH:mm:ss
     */
    private String createTime;

    /**
     * 是否有合同，true-有，false-没有
     */
    private Boolean hasContract;

    /**
     * 是否有发票，true-有，false-没有
     */
    private Boolean hasInvoice;

    /**
     * 外部状态枚举
     */
    private Integer outerStatus;

    /**
     * 外部状态名称
     */
    private String outerStatusName;

    /**
     * 订单商品信息
     */
    private OrderProductSummaryVO product;

    /**
     * 订单支付记录
     */
    private List<VendorOrderPaymentDetailVO> payments;

    /**
     * 交付信息
     */
    private OrderConsigneeDetailVO consignee;

    /**
     * 合同信息
     */
    private OrderContractDetailVO contract;

    /**
     * 发票信息
     */
    private OrderInvoiceDetailVO invoice;

    /**
     * 其他要求
     */
    private OrderRequirementDetailVO requirement;

    /**
     * 收发货统计
     */
    private List<OrderDeliverySummaryVO> deliveries;

    /**
     * 收发货明细
     */
    private List<PlatformOrderDeliveryDetailVO> deliveryDetails;

    /**
     * 外部流转记录
     */
    private List<OrderOuterHistoryVO> outerHistories;

    public List<WorkFlowStepVO> getOuterSteps() {
        return outerSteps;
    }

    public void setOuterSteps(List<WorkFlowStepVO> outerSteps) {
        this.outerSteps = outerSteps;
    }

    public Integer getCurrentOuterStep() {
        return currentOuterStep;
    }

    public void setCurrentOuterStep(Integer currentOuterStep) {
        this.currentOuterStep = currentOuterStep;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getVendorMemberId() {
        return vendorMemberId;
    }

    public void setVendorMemberId(Long vendorMemberId) {
        this.vendorMemberId = vendorMemberId;
    }

    public Long getVendorRoleId() {
        return vendorRoleId;
    }

    public void setVendorRoleId(Long vendorRoleId) {
        this.vendorRoleId = vendorRoleId;
    }

    public String getVendorMemberName() {
        return vendorMemberName;
    }

    public void setVendorMemberName(String vendorMemberName) {
        this.vendorMemberName = vendorMemberName;
    }

    public Long getBuyerMemberId() {
        return buyerMemberId;
    }

    public void setBuyerMemberId(Long buyerMemberId) {
        this.buyerMemberId = buyerMemberId;
    }

    public Long getBuyerRoleId() {
        return buyerRoleId;
    }

    public void setBuyerRoleId(Long buyerRoleId) {
        this.buyerRoleId = buyerRoleId;
    }

    public String getBuyerMemberName() {
        return buyerMemberName;
    }

    public void setBuyerMemberName(String buyerMemberName) {
        this.buyerMemberName = buyerMemberName;
    }

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Integer getOrderMode() {
        return orderMode;
    }

    public void setOrderMode(Integer orderMode) {
        this.orderMode = orderMode;
    }

    public String getOrderModeName() {
        return orderModeName;
    }

    public void setOrderModeName(String orderModeName) {
        this.orderModeName = orderModeName;
    }

    public Integer getOrderKind() {
        return orderKind;
    }

    public void setOrderKind(Integer orderKind) {
        this.orderKind = orderKind;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Long getQuoteId() {
        return quoteId;
    }

    public void setQuoteId(Long quoteId) {
        this.quoteId = quoteId;
    }

    public String getQuoteNo() {
        return quoteNo;
    }

    public void setQuoteNo(String quoteNo) {
        this.quoteNo = quoteNo;
    }

    public String getDigest() {
        return digest;
    }

    public void setDigest(String digest) {
        this.digest = digest;
    }

    public String getOrderTypeName() {
        return orderTypeName;
    }

    public void setOrderTypeName(String orderTypeName) {
        this.orderTypeName = orderTypeName;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }

    public Boolean getHasContract() {
        return hasContract;
    }

    public void setHasContract(Boolean hasContract) {
        this.hasContract = hasContract;
    }

    public Boolean getHasInvoice() {
        return hasInvoice;
    }

    public void setHasInvoice(Boolean hasInvoice) {
        this.hasInvoice = hasInvoice;
    }

    public Integer getOuterStatus() {
        return outerStatus;
    }

    public void setOuterStatus(Integer outerStatus) {
        this.outerStatus = outerStatus;
    }

    public String getOuterStatusName() {
        return outerStatusName;
    }

    public void setOuterStatusName(String outerStatusName) {
        this.outerStatusName = outerStatusName;
    }

    public OrderProductSummaryVO getProduct() {
        return product;
    }

    public void setProduct(OrderProductSummaryVO product) {
        this.product = product;
    }

    public List<VendorOrderPaymentDetailVO> getPayments() {
        return payments;
    }

    public void setPayments(List<VendorOrderPaymentDetailVO> payments) {
        this.payments = payments;
    }

    public OrderConsigneeDetailVO getConsignee() {
        return consignee;
    }

    public void setConsignee(OrderConsigneeDetailVO consignee) {
        this.consignee = consignee;
    }

    public OrderContractDetailVO getContract() {
        return contract;
    }

    public void setContract(OrderContractDetailVO contract) {
        this.contract = contract;
    }

    public OrderInvoiceDetailVO getInvoice() {
        return invoice;
    }

    public void setInvoice(OrderInvoiceDetailVO invoice) {
        this.invoice = invoice;
    }

    public OrderRequirementDetailVO getRequirement() {
        return requirement;
    }

    public void setRequirement(OrderRequirementDetailVO requirement) {
        this.requirement = requirement;
    }

    public List<OrderDeliverySummaryVO> getDeliveries() {
        return deliveries;
    }

    public void setDeliveries(List<OrderDeliverySummaryVO> deliveries) {
        this.deliveries = deliveries;
    }

    public List<PlatformOrderDeliveryDetailVO> getDeliveryDetails() {
        return deliveryDetails;
    }

    public void setDeliveryDetails(List<PlatformOrderDeliveryDetailVO> deliveryDetails) {
        this.deliveryDetails = deliveryDetails;
    }

    public List<OrderOuterHistoryVO> getOuterHistories() {
        return outerHistories;
    }

    public void setOuterHistories(List<OrderOuterHistoryVO> outerHistories) {
        this.outerHistories = outerHistories;
    }
}
